/*
 * PropagationTester.cuh
 *
 *  Created on: Oct 18, 2013
 *      Author: jaime
 */

#ifndef PROPAGATIONTESTER_CUH_
#define PROPAGATIONTESTER_CUH_

#include "../../SATSolver/VariablesStateHandler.cuh"
#include "../../SATSolver/SolverTypes.cuh"
#include "../../ConflictAnalysis/ConflictAnalyzer.cuh"

class PropagationTester
{
private:
	VariablesStateHandler * vars_handler;
	CUDAClauseVec * formula;

public:

	__device__ PropagationTester(CUDAClauseVec * formula,
				VariablesStateHandler * vars_handler);

	__device__ bool test_single_propagation(ConflictAnalyzer * analyzer,
			sat_status & status);

	__device__ bool test_implication(Decision implication, ConflictAnalyzer * analyzer);

};
#endif /* PROPAGATIONTESTER_CUH_ */
